class Solution {
public:
    bool isValid(string s) {
        int n=s.size();
        if(n%2) return false;
        stack<char> st;
        for(int i=0;i<n;i++)
        {
            if(st.size()&&
            ((st.top()=='['&&s[i]==']')||
            (st.top()=='('&&s[i]==')')||
            (st.top()=='{'&&s[i]=='}')))
            {
                st.pop();
            }
            else
            {
                st.push(s[i]);
            }
        }
        if(st.size()) return false;
        return true;
    }
};